Hack The Box - Return
...

Return.png

Resumen
...

La máquina Return comienza con el escaneo de puertos abiertos mediante el uso de la herramienta nmap, donde se puede apreciar que se está al frente de una máquina Windows y que existe una página web alojada en el puerto 80, entre otros servicios y puertos abiertos que serán de nuestro interes entrando a la etapa de explotación. En la página web, la sección de settings permite enviar una petición a un hosts, en un input donde se puede cambiar a la ip y colocar la de nuestra máquina de atacante, por lo que se tendrá que poner en escucha en el puerto 389, de forma que obtenemos una shell como el usuario svc-printer. Entrando en la escalada de privilegios procedemos a enumerar los permisos y grupos que pertenecen a este usuario, entre los grupos que pertenece está Server Operator que permite iniciar, parar y editar servicios, por lo que se buscó un servicio que posea permisos para poder modificarlo y así cambiar el binPath, que mediante la ejecución de netcat se envió una reverse shell y debido a que el proceso pertenece al usuario nt authority system, obtenemos una shell como administrador, logrando así obtener la última flag.

Keywords: Nmap, crackmapexec, samba, evil-winrm, privileged escalation.

Palabras Claves: Nmap, crackmapexec, samba, evil-winrm, escalada de privilegios.

Realizado por Luis Ramos Moncayo, a fecha 12 de Enero de 2024

Reconocimiento
...

Nmap
...

Se procede a enumerar los puertos abiertos de esta máquina usando la herramienta Nmap, que mediante el parámetro -sC envia un conjunto de scripts que permite enumerar los servicios que estén alojados en los puertos expuestos, y el parámetro -sV permite obtener la versión de los servicios que se van enumerando.

0_Nmap.png
En este análisis se logra ver que existen varios puertos abiertos, por lo que puede llegar a ser abrumador, por lo que será mejor ir filtrando por lo más conocidos hasta llegar al que sea un véctor de entrada para uno como atacante, en este caso se enfocará más en los que indiquen que son HTTP. Utilizando el archivo que creamos llamado targeted vamos a filtar usando grep los puertos que tengan servicio HTTP expuerto.

1_Nmap_FiltradoHTTP.png

El primer puerto a revisar porque es el más común de encontrar vulnerabilidades es el puerto 80, pero además hay otro puerto el 5985 que tiene mi interés que es el servicio winrm, cual si obtengo credenciales válidad se puede obtener una shell a la máquina. Pero por ahora se va a enumerar lo que está alojado en el puerto 80.

Enumeración
...

Puerto TCP 80 - HTTP
...

Se observa que existe una página web que parece ser un panel de administración de una impresora. Por lo que vamos a ir en cada tab en búsqueda de algún véctor de entrada.

2_WebPage_Main.png

En la sección de settings se puede observar que existe campos de host, puerto, usuario y contraseña, este último campo no interesa porque son solo asteriscos.

2_xSeccion_Settings.png

Se va a probar cambiando el host para ver si envía alguna petición, el host que se colocará es la ip de nuestra máquina de atacante y nos pondremos en escucha por el puerto 389.

3_InformacionLeaked_Before.png

4_InformationLeaked_After.png

En la respuesta se lográ observar unas credenciales que pueden servir para inicar sesión en algunos de los servicios expuertos, debido a que se procede a comprobar con crackmapexec que el servicio Samba esté expuesto.

5_Comprobación_SMB.png

Enumeración de Servicio Samba
...

Con smbclient verificamos si se puede inciar con una null sesión, comprobamos que es posible pero no permite hacer mucha cosa.

6_Verificación_AnonymousLogin.png

Se va a validar las credenciales, utilizando crackmapexec para el servicio de samba, y confirmamos que son credenciales válidas.

7_Confirmación_Credenciales.png

Se ingresa con smbclient utilizando las credenciales que tenemos pero tampoco se logra ver mucho más.

8_Comprobación_smb.png

Explotación
...

Shell as svc-printer - evil-winrm
...

Recordando que el puerto 5985 está expuesto se va a comprobar que las credenciales válidas para samba ahora sean tambien para \textbf{winrm}. En caso que salga pwn3d! sabremos que lo son y se podrá obtener una reverse shell utilizando evil-winrm.

9_Puerto5985_Winrm.png

Las credenciales son válidas para winrm, se utilizará evil-winrm para conectarnos a la máquina como svc-printer y obtener la primera flag.

10_Shell_as_svc-printer.png

Escalada de Privilegios
...

Shell as root
...

Obteniendo el acceso como el usuario svc-printer, se va a proceder a buscar formas para poder escalar de privilegios. Por tanto, se procede a enunerar las permisos de este usuario.

11_Revisión de Permisos.png

Ahora se enumerará tambien los grupos al que pertenece este usuario para observar si pertenece a uno que se pueda aprovechar de los permisos y capacidades que presente este grupo y lograr la escalada de privilegios.

12_Grupos_svc-printer.png

Se observa que el usuario pertenece al grupo Remote Management Use por lo que por ello es posible conectarse con winrm a este usuario, y tambien pertenece al grupo Server Operator mismo que puede iniciar, parar y editar servicios. Pero antes de modificar algún servicio, se va a pasar a la máquina el nc64.exe que es el netcat para windows.

13_Privilege_Envio_nc.png

Ya teniendo el netcat en la máquina, pasamos a verificar si se puede crear un servicio. Pero vemos que no tenemos permiso para ello.

14_Probamos_Crear_Servicios.png

Viendo que no se tiene permiso para la creación de servicios procedemos a listar servicio en el sistema de manera que iremos probando por cado uno para confirmar cual podemos modificar el binPath.

15_List_services.png

Despues de ir probando uno a uno cada servicio, el servicio VMTools es el que permite modificar el binPath, por lo que se va a ejecutar netcat para que envíe una shell a nuestra máquina por el puerto 443, y como este servicio es privilegiado tendremos una shell como nt authority system, es decir como administrador.

16_Probamos_Modificar_Servicios.png

Se procede a parar el servicio VMTools.

17_Paramos_Servicio.png

En la máquina de atacante, se pone en escucha por el puerto 443, y luego se inicia el servicio VMTools para obtener la shell como nt authority system. De manera que se podrá obtener la última flag y se terminaría aquí la máquina Return.

18_Shell_as_root.png

19_root_flag.png